package com.bt.lms.dao.servise;

import com.bt.lms.bo.EnrollmentList;
import com.bt.lms.entity.EnrollmentPlan;
import com.bt.lms.entity.page.Page;

/**
 * 招生计划Dao
 *
 * @author 李鹏
 */
public interface EnrollmentPlanDao {

    /**
     * 添加招生计划表
     * @param sql 要执行的sql
     * @param enrollmentPlan 招生计划
     * @return 受影响的行数
     */
    public int insert(String sql, EnrollmentPlan enrollmentPlan) throws Exception;

    /**
     * 添加报名材料表
     * @param sql 要执行的sql
     * @param enrollmentPlan 招生计划
     * @return 受影响的行数
     */
    public int insertReg(String sql, EnrollmentPlan enrollmentPlan) throws Exception;

    /**
     * 查看招生计划表
     * @param sql 要执行的sql
     * @param id 招生计划id
     * @return 招生计划
     */
    public EnrollmentPlan select(String sql, Long id) throws Exception;

    /**
     * 查看报名材料表
     * @param sql1 要执行的sql
     * @param id 招生计划id
     * @return 招生计划
     */
    public EnrollmentPlan selectRegType(String sql1, Long id) throws Exception;

    /**
     * 查看报名材料表
     * @param sql2 要执行的sql
     * @param teachPlanId 教学计划id
     * @return 招生计划
     */
    public EnrollmentPlan selectTeachPlanName(String sql2, Long teachPlanId) throws Exception;

    /**
     * 编辑招生计划
     * @param sql 要执行的sql
     * @param id 招生计划id
     * @param enrollmentPlan 招生计划
     * @return 是否成功
     */
    public boolean update(String sql, Long id, EnrollmentPlan enrollmentPlan) throws Exception;

    /**
     * 编辑报名材料表
     * @param sql 要执行的sql
     * @param id 招生计划id
     * @param enrollmentPlan 招生计划
     * @return 是否成功
     */
    public boolean updateReg(String sql, Long id, EnrollmentPlan enrollmentPlan) throws Exception;

    /**
     * 删除招生计划
     * @param sql 要执行的sql
     * @param id 招生计划id
     * @return 是否成功
     */
    public boolean delete(String sql, Long id) throws Exception;

    /**
     * 启用招生计划
     * @param sql 要执行的sql
     * @param id 招生计划id
     * @return 是否成功
     */
    public boolean updateStart(String sql, Long id) throws Exception;

    /**
     * 停用招生计划
     * @param sql 要执行的sql
     * @param id 招生计划id
     * @return 是否成功
     */
    public boolean updateStop(String sql, Long id) throws Exception;

    /**
     * 完成招生计划
     * @param sql 要执行的sql
     * @param id 招生计划id
     * @return 是否成功
     */
    public boolean updateFinish(String sql, Long id) throws Exception;

    /**
     * 分页条件查询招生计划
     * @param sql 要执行的sql
     * @param page 分页模型
     * @return 带有数据的分页模型
     */
    public Page<EnrollmentList> pagingConditionQuery(String sql, Page<EnrollmentList> page,Page<EnrollmentPlan> enrollmentPlanPage);
}
